Module 5: Randomized Complete Block Designs (RCBD)

Designing a RCBD

Example 5.1: Cookies in Ovens

A bakery wants to compare three different cookie recipes for a new product line. The recipes differ in type of fat used: Classic Butter, Brown Butter, and Coconut Oil. Cookie quality is evaluated based on texture scores from a tasting panel.

Example 5.1: The Complication

But…the bakery uses multiple ovens

The ovens are known to differ slightly in temperature calibration and air circulation. These differences can affect how cookies bake. For example, some ovens may run hotter, producing crispier cookies, while others bake more slowly and yield softer cookies. Although one oven may be relatively consistent, overall consistency between ovens is unlikely.

Suppose there were no restrictions on recipe randomization

Completely Randomized Design (CRD)

  • Suppose Oven A runs slightly hotter than the others. How will this affect the results if that oven happens to get more Brown Butter trays?

  • Suppose Oven B runs cooler and happens to bake most of the Coconut Oil trays. How will this affect the results?

Where the CRD breaks down

Key Idea: We can’t separate recipe effects from oven effects.

CRD assumes:

  • Experimental units are homogeneous

But here:

  • Trays within an oven are similar
  • Trays across ovens are not similar

The Solution: Block on oven

Randomized Complete Block Design (RCBD)

Why ovens? big source of variation, not scientifically interesting, known before the experiment

Key Idea: Block on what you can’t control but can identify.

What ‘Randomized Complete’ means

Elements of a RCBD

  • Block: This is a homogeneous group of experimental units. A RCBD consists of first sorting the experimental units into blocks.

  • Complete: Each block consists of one complete replication of the set of treatments. Therefore, each treatment will show up once within each block.

  • Randomized: The treatments are randomly assigned to experimental units separately within each block.

Why Block?

Advantages

  • Effective blocking can lead to reduced experimental error and more precise estimates of treatment effects.
  • The RCBD can accommodate any number of treatments and replications.
  • The statistical analysis is relatively simple.

Disadvantages

  • The degrees of freedom for experimental error are not as large as for a CRD.

Example 5.1: Study Structure

Treatment structure

One-way treatment structure with cookie recipes (3 levels – classic butter, brown butter, and coconut oil).

Experimental structure

Cookie recipe treatments are randomly assigned to trays (e.u.) in a RCBD (randomized complete block design) with r = 4 replications (blocks) where the blocking factor is oven. The texture score is recorded for each tray (m.u.).

Designing a RCBD

R: Designing a RCBD

library(tidyverse)
library(edibble)

des <- design("Cookies in Ovens") |>
  set_units(oven  = c("Oven A", "Oven B", "Oven C", "Oven D"),
            tray  = nested_in(oven, 3)) |>
  set_trts(recipe = c("Classic Butter", "Brown Butter", "Coconut Oil")) |>
  allot_trts(recipe ~ tray) |>
  assign_trts("random")

cookie_data <- serve_table(des)
cookie_data$texture <- NA
cookie_data
# Cookies in Ovens 
# An edibble: 12 x 4
     oven    tray         recipe texture
   <U(4)> <U(12)>         <T(3)>        
    <chr>   <chr>          <chr> <lgl>  
 1 Oven A  tray01   Brown Butter NA     
 2 Oven A  tray02 Classic Butter NA     
 3 Oven A  tray03    Coconut Oil NA     
 4 Oven B  tray04 Classic Butter NA     
 5 Oven B  tray05    Coconut Oil NA     
 6 Oven B  tray06   Brown Butter NA     
 7 Oven C  tray07    Coconut Oil NA     
 8 Oven C  tray08   Brown Butter NA     
 9 Oven C  tray09 Classic Butter NA     
10 Oven D  tray10   Brown Butter NA     
11 Oven D  tray11 Classic Butter NA     
12 Oven D  tray12    Coconut Oil NA     

R: Check your RCBD

Does each oven have 3 trays?

cookie_data |> 
  count(oven)
# Cookies in Ovens 
# An edibble: 4 x 2
  oven       n
              
  <chr>  <int>
1 Oven A     3
2 Oven B     3
3 Oven C     3
4 Oven D     3

Does each recipe appear r = 4 times?

cookie_data |> 
  count(recipe)
# Cookies in Ovens 
# An edibble: 3 x 2
  recipe             n
                      
  <chr>          <int>
1 Brown Butter       4
2 Classic Butter     4
3 Coconut Oil        4

Does each recipe appear once in each oven?

cookie_data |> 
  count(oven, recipe)
# Cookies in Ovens 
# An edibble: 12 x 3
   oven   recipe             n
                              
   <chr>  <chr>          <int>
 1 Oven A Brown Butter       1
 2 Oven A Classic Butter     1
 3 Oven A Coconut Oil        1
 4 Oven B Brown Butter       1
 5 Oven B Classic Butter     1
 6 Oven B Coconut Oil        1
 7 Oven C Brown Butter       1
 8 Oven C Classic Butter     1
 9 Oven C Coconut Oil        1
10 Oven D Brown Butter       1
11 Oven D Classic Butter     1
12 Oven D Coconut Oil        1

JMP: Designing a RCBD

DOE > Custom Design

JMP: Designing a RCBD

JMP: Designing a RCBD

Then use Tables > Summary to check RCBD.